﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace C_初级教程
{
    /// <summary>
    /// 泛型集合List的使用
    /// </summary>
    public class UseFanXing集合
    {
        public void test1()
        {
            //ArrayList可以存储各种类型成员，而且成员的类型可以不相同
            //所以ArrayList是类型不安全的,(ArrayList用的是非常少的)
            ArrayList arrayList = new ArrayList();
            arrayList.Add(1);
            arrayList.Add("aaa");
            arrayList.Add(3.14);

            //比如用如下方式遍历，系统会报错
            foreach (int item in arrayList)
            {
                Console.WriteLine(item);
            }

            //为了解决类型安全问题，引入泛型概念
            //泛型：不是指某种类型，只是在声明时不确定类型，只给了个占位符来代表类型

            //List<T> 泛型集合
            //泛型集合List是类型安全的
            List<int> list1 = new List<int>();
            list1.Add(1);
            list1.Add(2);
            list1.Sort();//从小到大排序
            list1.Reverse();//反转
            list1.Contains(1);//判断集合中是否包含某个元素
            int a=  list1.Count;//获取长度
            list1[0] = 23;  //元素赋值
            list1.Remove(1);//移除元素
            var result = list1.Exists(t=>t==1);//判断元素是否存在
            list1.Insert(0, 23);//Add是在最后添加，Insert是在指定位置添加


            List<string> list2 = new List<string>();
            list2.Add("sasds");
            list2.Add("dafdasfdas");
            

            List<Person> listPerseon = new List<Person>();
            listPerseon.Add(new Person());
            listPerseon.Add(new Person());


            //遍历List集合
            foreach (Person item in listPerseon)
            {
                Console.WriteLine(item.Name);
            }
        }

    }
}
